home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / T-COMAL Today / (k)td.d64 / src.oki92 < prev    next >
Text File  |  2007-02-28  |  3KB  |  192 lines

  1. ; PUT "@0:DUMP.SRC"
  2. ;
  3.        .LIB C64SYMB
  4.        .OPT LIST
  5. ;
  6.        *=$8009
  7. ;
  8.        .BYT DEFPAG
  9.        .WOR END
  10.        .WOR SENSE
  11. ;
  12.        .BYT 9,'OKIDATA92'
  13.        .WOR PTABLE
  14.        .WOR INIT
  15.        .BYT 0
  16. ;
  17. SENSE  RTS
  18. ;
  19. INIT   RTS
  20. ;
  21. PTABLE .BYT 17,'OKI92_SCREEN_DUMP'
  22.        .WOR DESCR
  23.        .BYT 0
  24. ;
  25. DESCR  .BYT PROC
  26.        .WOR SCRDMP
  27.        .BYT 1
  28.        .BYT VALUE+INT
  29.        .BYT ENDPRC
  30. ;
  31. PRROWS =28
  32. PRBITS =7
  33. COLS   =40
  34. N1     =FREKZP
  35. N2     =FREKZP+1
  36. COL    =FREKZP+2
  37. ROW    =FREKZP+3
  38. GRAFON =3
  39. GRAFLF =14
  40. NOGRAF =2
  41. BITSCR =$E000
  42. ;
  43. SCRDMP LDA #1      ; GET FILE NUMBER
  44.        JSR FNDPAR
  45.        LDY #1
  46.        LDA (COPY1),Y
  47.        TAX
  48.        JSR CCKOUT
  49.        LDA #GRAFON
  50.        JSR CWRT
  51.        LDA #PRROWS
  52.        STA ROW
  53.        LDA #PRBITS
  54.        STA N2
  55.        LDA #<BITSCR
  56.        STA P1+1
  57.        STA P2+1
  58.        LDA #>BITSCR
  59.        STA P1+2
  60.        STA P2+2
  61. ;
  62. ; THE FOLLOWING INSTRUCTIONS FORM THE MAIN LOOP
  63. ;
  64. NXTROW JSR STOP  ; CHECK FOR STOP KEY
  65.        BEQ FINISH
  66. ;
  67.        LDA #PRBITS
  68.        SEC
  69.        SBC N2
  70.        JSR DOROW
  71.        JSR LINEFD
  72.        DEC N2
  73.        BPL STPROW
  74.        LDA #PRBITS
  75.        STA N2
  76. STPROW LDX ROW
  77.        DEX
  78.        STX ROW
  79.        BNE NXTROW
  80.        LDA #0   ; DO LAST ROW WHICH IS
  81.        STA N2   ;  ONLY 4 BITS HIGH
  82.        LDA #4
  83.        JSR DOROW
  84. FINISH LDA #GRAFON
  85.        JSR CWRT
  86.        LDA #NOGRAF
  87.        JSR CWRT
  88.        RTS
  89. ;
  90. ; END OF THE MAIN LOOP
  91. ;
  92. ;
  93. ;
  94. DOROW  STA N1
  95.        LDA #COLS
  96.        STA COL
  97. NXTCOL JSR DOCOL
  98.        DEC COL
  99.        BNE NXTCOL
  100.        RTS
  101. ;
  102. ;
  103. DOCOL  LDA D1CRA ; STOP THE TIMER
  104.        AND #$FE
  105.        STA D1CRA
  106.        LDA R6510 ; SWITCH OUT KERNAL ROM
  107.        AND #$FD
  108.        STA R6510
  109.        LDX N1
  110. XFER1  DEX
  111.        BMI XFER20
  112. P1     LDA $E000,X
  113.        STA AC1,X
  114.        JMP XFER1
  115. ;
  116. XFER20 LDX N2
  117. XFER2  DEX
  118.        BMI XFORM
  119. P2     LDA $E000,X
  120.        STA AC2,X
  121.        JMP XFER2
  122. ;
  123. XFORM  LDA R6510  ; SWITCH BACK KERNAL ROM
  124.        ORA #2
  125.        STA R6510
  126.        LDA D1CRA ; RESTART TIMER
  127.        ORA #1
  128.        STA D1CRA
  129. ;
  130.        LDY #PRBITS+1 ; FORM OUTPUT BYTE
  131. GROUP1 LDX #0
  132. NXTLN1 CPX N1
  133.        BEQ GROUP2
  134.        ASL AC1,X
  135.        ROR A
  136.        INX
  137.        JMP NXTLN1
  138. ;
  139. GROUP2 LDX #0
  140. NXTLN2 CPX N2
  141.        BEQ BYTEND
  142.        ASL AC2,X
  143.        ROR A
  144.        INX
  145.        JMP NXTLN2
  146. ;
  147. BYTEND LSR A
  148.        LDX ROW
  149.        BNE NOTLST
  150.        LSR A   ; ZERO REMAINING BITS
  151.        LSR A   ;  IN THE LAST ROW
  152.        LSR A
  153. NOTLST CMP #GRAFON
  154.        BNE NOT3
  155.        JSR CWRT  ; IF A 3, MUST SEND
  156.        LDA #GRAFON ;  TWO OF THEM
  157. NOT3   JSR CWRT
  158.        DEY
  159.        BNE GROUP1
  160.        LDA COL
  161.        CMP #1
  162.        BEQ P1INC7
  163.        LDA N1
  164.        BNE P1INC8
  165.        BEQ DOP2
  166. P1INC7 LDA #PRBITS
  167.        BNE ADDP1
  168. P1INC8 LDA #PRBITS+1
  169. ADDP1  CLC
  170.        ADC P1+1
  171.        STA P1+1
  172.        BCC DOP2
  173.        INC P1+2
  174. DOP2   LDA N2
  175.        BEQ ENDCOL
  176.        LDA #PRBITS+1
  177.        CLC
  178.        ADC P2+1
  179.        STA P2+1
  180.        BCC ENDCOL
  181.        INC P2+2
  182. ENDCOL RTS
  183. ;
  184. ;
  185. LINEFD LDA #GRAFON
  186.        JSR CWRT
  187.        LDA #GRAFLF
  188.        JSR CWRT
  189.        RTS
  190. ;
  191. END    .END
  192.